/*
 * Project: Sudoku Explainer
 * Copyright (C) 2006-2007 Nicolas Juillerat
 * 
 * Project: Sudoku Hint Engine for Android
 * Copyright (C) 2010-2013 Emanuel Moecklin
 * 
 * Available under the terms of the Lesser General Public License (LGPL)
 */
package com.onegravity.sudoku.solver.accumulator;

import java.util.List;

import com.onegravity.sudoku.solver.core.Hint;

/**
 * Accumulator for hints.
 * The accumulator can choose to throw an <tt>StopHintProductionException</tt>
 * whenever it has gathered enough hints.
 */
public interface HintsAccumulator {

    /**
     * Add an hint to this accumulator
     * @param hint the hint to add
     * @throws StopHintProductionException if this accumulator wants to stop the gathering of hints.
     * The exception is typically caught in the Solver class
     */
    public void add(Hint hint) throws StopHintProductionException;

    public List<Hint> getHints();
    
}